To execute human programming on a computer, a compiler or interpreter must be used to compile human programming into machine code. Hereafter compiler and interpreter are used as synonymous. The way a compiler works defines a specific programming paradigm for human programmers to do programming. A good programming paradigm makes programming intuitive, requires less coding, avoids programming pitfalls, and requires less technical knowledge of the programmers.
For example, a compiler with garbage collector takes the burden of memory allocation and de-allocation off from the human programmers. Java compiler and Microsoft .Net Framework compilers have garbage collectors. Programmers do not need to worry about memory management.
Another example is LINQ. Microsoft .Net Framework compilers enable SQL-like syntax into programming languages via LINQ. Programmers familiar with SQL could feel intuitive in mixing generic programming languages with SQL-like LINQ coding for database related programming.
There are many areas where various computer compilers make special efforts to make human programming easy and intuitive, such as artificial intelligence, graphics, etc.
A specific area the present invention is focusing is the client server programming. For example, in a web application environment, a web page runs at a client computer and interacts with a web server at a server computer. Client server communications are made via form submission or AJAX. State-of-art compilers and interpreters work for client programming or server programming, but not both. For example, a PHP interpreter only works with server programming, a JavaScript interpreter only works with client programming. Some languages, such as VB and C#, may be used at both client and server in some environments, but, despite syntax similarity, there is still a distinct boundary between client side programming and server side programming, that is, even had PHP and JavaScript used a similar syntax the programming boundary between client side programming and server side programming could not have gone away by unifying syntax. The programmers must write client side coding and server side coding separately, and address complex issues of making client side coding and server side coding work together.
Microsoft ASP.NET automates some aspects of client server programming. Its compiler generates server side code to match client side controls. It uses Auto-Post-back so that in handling some events form-submission is automatically done. It uses View State to automatically upload and download control properties. From a programmer's point of view it is as if a same control works at both client side and server side. Client server programming is thus made more intuitive.